home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / hawk_s.arc / HAWKS.RAM
Text File  |  1986-12-31  |  54KB  |  948 lines

  1.  
  2.  
  3.                         HAWK'S RAM -- SEPTEMBER, 1986
  4.                                BY JOHN HAWKINS
  5.  
  6.  
  7.                            PC ACCOUNTING SOFTWARE
  8.       MAYBE BECAUSE STARTING OR CONVERTING TO A NEW ACCOUNTING SYSTEM IS
  9.  BEST DONE AT THE ROLL-OVER BETWEEN ACCOUNTING YEARS, AND BECAUSE IF YOU
  10.  WANT TO MAKE A CHANGE JANUARY 1ST YOU'D BETTER START NOW -- MAYBE THAT'S
  11.  WHY I'VE RECENTLY BEEN INUNDATED WITH QUESTIONS ABOUT SUITABLE ACCOUNTING
  12.  SOFTWARE AND SYSTEMS.  IF YOU TAKE THE RIGHT APPROACH, I THINK YOU CAN MAKE
  13.  A SELECTION THAT IS "SAFE" WITHOUT HAVING TO COMPARE SPECIFICATIONS OF THE
  14.  THOUSANDS OF PROGRAMS THAT ALL CLAIM TO DO THE SAME THINGS.
  15.  
  16.       AT THE TOP OF MY "DANGER" LIST IS RIGID STRUCTURE.  VERY FEW
  17.  BUSINESSES START LIFE WITH A COMPUTERIZED ACCOUNTING SYSTEM.  THE TYPICAL
  18.  SITUATION INVOLVES AN ON-GOING BUSINESS THAT WANTS TO TRANSFER A
  19.  FUNCTIONING MANUAL SYSTEM TO A PC, WHILE RETAINING AS MUCH OF THE OLD,
  20.  COMFORTABLE, TRIED-AND-TRUE PROCEDURES AS POSSIBLE.  THAT ONLY MAKES SENSE,
  21.  BECAUSE THE GOAL IS TO AUTOMATE WHAT YOU ARE DOING, NOT THROW IT ALL AWAY
  22.  AND START OVER.  BUT VERY FEW ACCOUNTING PACKAGES ALLOW ENOUGH FLEXIBILITY
  23.  AND PERSONALIZATION.  EVEN FEWER ALLOW MODIFICATIONS DOWN THE LINE AS THE
  24.  BUSINESS GROWS AND EVOLVES.
  25.  
  26.       ONE WAY TO ACHIEVE FLEXIBILITY AND VERSATILITY IS TO BUILD IT INTO THE
  27.  SOFTWARE IN A WAY THAT THE USER CAN EASILY CONTROL.  IN THE FEW PACKAGES
  28.  THAT GIVE THE USER A GREAT DEAL OF CONTROL THERE IS AN UNAVOIDABLE PENALTY
  29.  IN COMPLEX INSTALLATION, LARGE PROGRAM SIZE (AND DISK SPACE REQUIREMENTS),
  30.  AND OFTEN EXCESSIVE OVERHEAD DURING OPERATION.  EVEN PROGRAMS THAT ARE
  31.  REASONABLY FLEXIBLE (AND HIGHLY RATED), LIKE SOLOMON III, ARE MONSTERS TO
  32.  INSTALL AND USE.  IN FACT, YOU AREN'T SUPPOSED TO BUY SOLOMON III EXCEPT
  33.  FROM AN AUTHORIZED CONSULTANT WHO HAS HAD TRAINING, AND WHO WILL TRAIN YOU.
  34.  THAT MAY SOUND REASONABLE BUT YOU SHOULD ALSO ADD "EXPENSIVE."
  35.  
  36.       ANOTHER WAY TO MAINTAIN PROPER MANAGERIAL CONTROL IS TO USE SOFTWARE
  37.  THAT INCLUDES SOURCE CODE.  BEFORE THE IBM PC I USED A PROGRAM WRITTEN IN
  38.  MICROSOFT BASIC ON A TRS-80 MODEL II.  WE KNEW IT WAS RISKY TO USE SUCH A
  39.  SYSTEM TO MANAGE A MAJOR BUSINESS, BUT OUR ONLY ALTERNATIVE WAS A $60,000
  40.  MINI-COMPUTER SYSTEM.  FORTUNATELY, HAVING THE SOURCE CODE MADE IT POSSIBLE
  41.  TO MODIFY THE PROGRAM TO CREATE A CUSTOMIZED ACCOUNTING SYSTEM THAT MET THE
  42.  NEEDS OF THE BUSINESS, INTERFACED WITH OTHER PROGRAMS ALSO WRITTEN IN
  43.  BASIC, AND SATISFIED THE REPORTING REQUIREMENTS OF EVERYONE CONCERNED.
  44.  OF COURSE, A COMPLEX INTERPRETED BASIC PROGRAM RUNNING ON A 64K Z80
  45.  COMPUTER WAS NO SPEED DEMON, BUT IT WORKED, AND PAID FOR ITSELF IN TWO
  46.  MONTHS!
  47.  
  48.       THE FIRST ACCOUNTING PACKAGES FOR THE IBM PC CAME FROM TWO SOURCES.
  49.  SOME WERE ESSENTIALLY THE SAME TYPE OF PROGRAM I USED, WRITTEN IN
  50.  INTERPRETED MBASIC OR CBASIC, PORTED OVER AND MODIFIED TO CONFORM TO THE
  51.  SYNTAX OF BASICA ON THE PC.  IF YOU HAVE ONE OF THOSE, AND KNOW YOUR WAY
  52.  AROUND BASIC, TREASURE IT!
  53.  
  54.       THE OTHER SOURCE OF PC SOFTWARE WAS (AND IS) MINICOMPUTER CODE,
  55.  USUALLY COBOL, PORTED TO A PC AND COMPILED USING MICROSOFT OR
  56.  RYAN-MCFARLAND COMPILERS.  IT IS THESE PROGRAMS THAT I FIND MOST
  57.  UNAPPEALING.  THEY USUALLY DON'T FEEL LIKE MODERN PC SOFTWARE, BECAUSE THEY
  58.  AREN'T.
  59.  
  60.       NOW THAT PC LANGUAGE COMPILERS ARE PLENTIFUL AND CAPABLE, FEW PACKAGES
  61.  SURVIVE IN THEIR SOURCE CODE/INTERPRETED FORM.  MOST CONTEMPORARY
  62.  ACCOUNTING SOFTWARE HAS BEEN WRITTEN AND COMPILED IN BASIC, PASCAL, TURBO
  63.  PASCAL, DBASE, KNOWLEDGEMAN, MDBS, AND OTHERS (RARELY IN C).  ALL OF THE
  64.  COMPILED PACKAGES OFFER IMPROVED SPEED.
  65.  
  66.       THE ISSUE OF SPEED CAN BE MISLEADING.  MANY COBOL PACKAGES ARE FAST AT
  67.  UPDATING THE SCREEN, BUT INCREDIBLY SLOW AT DISK ACTIVITIES, EVEN WITH A
  68.  FAST DISK DRIVE.  PROGRAMS IN BASIC OR PASCAL OFTEN STUMBLE AT DATA FILE
  69.  MANIPULATION ALSO.  MOST PACKAGES WRITTEN IN A DATABASE MANAGER LANGUAGE
  70.  HAVE SUPERIOR DATA CONTROL, BUT STILL RUN SLUGGISHLY DUE TO THEIR RELIANCE
  71.  ON RUNTIME INTERPRETATION (A NOTABLE EXCEPTION IS CLIPPER, A SUPERIOR
  72.  DBASE-LIKE DATABASE MANAGER).
  73.  
  74.       REGARDLESS OF THE HIGH-LEVEL LANGUAGE USED TO CREATE THE ACCOUNTING
  75.  PACKAGE, THEY ALL HAVE A LAYOUT AND STRUCTURE DETERMINED BY THEIR CREATORS,
  76.  AND LOCKED IN BY THE COMPILING PROCESS.  YOUR SPECIFIC WANTS MAY BE SIMPLE:
  77.  ALLOWING ONLY 6 DIGIT ACCOUNT NUMBERS WITH THREE LETTERS AND THREE NUMBERS;
  78.  OR INCLUDING A ROUTINE TO AUTOMATICALLY GENERATE A UNIQUE ID NUMBER FROM A
  79.  CLIENT NAME; OR ADDING A FIELD TO KEY YOUR CUSTOMERS' INDUSTRY; OR
  80.  ACCESSING YOUR DATA FROM OTHER PROGRAMS, COMMERCIAL OR HOME-GROWN; ETC.  IF
  81.  CERTAIN INFORMATION, FEATURES AND FUNCTIONS ARE VALUABLE TO YOU, AN
  82.  ACCOUNTING SYSTEM THAT IS TOO RIGID WILL ARBITRARILY LIMIT YOUR ABILITY TO
  83.  MANAGE YOUR BUSINESS.  HAVE YOU EVER CALLED A NATIONAL SOFTWARE COMPANY TO
  84.  ASK IF THEY COULD INCLUDE AN EXTRA FEATURES -- JUST FOR YOU?
  85.  
  86.       AFTER SEVERAL YEARS BALANCING TRADEOFFS AND BATTLING THE FORCES OF
  87.  BUREAUCRACY, I RECOMMEND BEGINNING WITH ACCOUNTING SOFTWARE SOURCE CODE.
  88.  MODIFY IT AS NEEDED FOR A SPECIFIC BUSINESS PURPOSE, THEN COMPILE IT.  THE
  89.  INVESTMENT IS PROTECTED, SINCE AS BUSINESS NEEDS EVOLVE THE PROGRAM CAN BE
  90.  REVISED AT ANY TIME RATHER THAN DISCARDED. CONTROL IS ABSOLUTE; WITH NO
  91.  MORE LONG DISTANCE CALLS TO PEOPLE WHO DON'T CARE AND WON'T HELP.  AND BY
  92.  COMPILING, THE ACCOUNTING SYSTEM RUNS QUICKLY AND SMOOTHLY.
  93.  
  94.       IN THE CONTEXT OF PC ACCOUNTING, "POWER" MEANS CAPABILITIES.  SOME
  95.  ACCOUNTING PACKAGES DO OFFER AN INCREDIBLE RANGE OF REPORTS AND ANALYSIS
  96.  RIGHT OUT OF THE BOX.  IF YOU LIKE THOSE REPORTS, YOU'LL WANT THAT PACKAGE.
  97.  IF YOU LIKE LOTS OF REPORTS, YOU'LL FAVOR MORE "POWERFUL" PACKAGES.  BUT
  98.  ACCOUNTING IS BASICALLY DATA COLLECTION AND ORGANIZATION.  THERE IS NOTHING
  99.  IN THE MOST POWERFUL OF ACCOUNTING PACKAGES THAT CAN'T BE IMPLEMENTED WITH
  100.  ANY REASONABLY WELL-DESIGNED ACCOUNTING PACKAGE -- IF YOU HAVE CONTROL OVER
  101.  THE SOURCE CODE!  HAVE SPECIALIZED DATA YOU WISH TO TRACK?  ADD A FIELD.
  102.  NEED AN UNUSUAL COMPARISON.  ADD A REPORT.  WANT TO PULL OUT AND GRAPH
  103.  CERTAIN INFORMATION.  DO IT.
  104.  
  105.       WHERE DO YOU GET SOURCE CODE?  I DON'T RECOMMEND CREATING IT FROM
  106.  SCRATCH; NOT FOR AN ACCOUNTING SYSTEM.  YOU CAN STILL BUY BOOKS OF
  107.  ACCOUNTING SOURCE CODE IN BASIC AND DBASE, AND OFTEN YOU CAN ORDER A DISK
  108.  TO SAVE THE TYPING. THAT'S NOT NECESSARILY A BAD WAY TO GO, SINCE MUCH
  109.  PRINTED CODE IS A VARIATION ON THE SAME CODE THAT UNDERLIES MANY OF THE
  110.  COMMERCIAL PACKAGES.  YOU CAN ALSO FIND SOURCE CODE ACCOUNTING PACKAGES ON
  111.  MANY BULLETIN BOARD SYSTEMS.  AND YOU CAN BUY THEM FROM COMPANIES AND
  112.  CONSULTANTS WHO OFFER DOCUMENTATION, UPGRADES AND ON-GOING SUPPORT.
  113.  
  114.       IT MAY BE THAT YOU CAN JUST BOOT UP THE SOURCE CODE AND GO, WITH NO
  115.  MODIFICATIONS NECESSARY.  THAT'S GREAT, AND YOU ARE PROTECTED FOR THE
  116.  FUTURE.  WHEN NEEDS CHANGE, THE SOFTWARE CAN KEEP UP WITH YOU.  DON'T
  117.  OVERLOOK THIS APPROACH BECAUSE YOU ARE NOT A PROGRAMMER; YOU CAN ALWAYS
  118.  BORROW ONE.  WHETHER YOU NEED MODIFICATIONS, CUSTOM REPORTS, OR JUST
  119.  SOMEONE TO COMPILE YOUR SOURCE CODE FOR SPEED, USING A FREE-LANCE
  120.  PROGRAMMER/CONSULTANT/FRIEND IS STILL A MUCH SOUNDER INVESTMENT THAN HOPING
  121.  THAT A RIGID PACKAGE WILL NOT BECOME OBSOLETE TOMORROW.
  122.  
  123.       I'M NOT ARGUING FOR SPECIFIC PACKAGES (ALTHOUGH I LIKE WHAT I USE);
  124.  IT'S THE PREMISE THAT COUNTS.  JUST KEEP YOUR EYES PEELED FOR A PACKAGE
  125.  THAT INCLUDES SOURCE CODE DESIGNED FOR MODIFICATION AND COMPILATION,
  126.  IDEALLY WRITTEN IN A COMMON, EASY TO WORK WITH LANGUAGE SUCH AS DBASE III,
  127.  MICROSOFT BASIC, OR TURBO PASCAL (STAY AWAY FROM DBASE II CODE UNLESS YOU
  128.  NEED CP/M COMPATIBILITY).
  129.  
  130.       I KNOW THIS VIEW IS NOT THE NORM.  HUNDREDS OF ACCOUNTING PACKAGES ARE
  131.  ADVERTISED.  AND FEW OFFER SOURCE CODE.  BUT THE OVERWHELMING NUMBER OF
  132.  SIMILAR VENDORS DEMONSTRATES MY POINT.  ACCOUNTING SOFTWARE IS NOT
  133.  ESPECIALLY MYSTERIOUS.  MUCH OF IT IS DESCENDED FROM THE OSBORNE CBASIC
  134.  CODE WIDELY PUBLISHED IN THE 1970S.  IF SO MANY PEOPLE CAN MARKET SUCH
  135.  SOFTWARE, YOU CAN CERTAINLY MANAGE YOUR OWN.
  136.  
  137.       I'VE LIKENED ACCOUNTING SOFTWARE TO AN AUTOMOBILE, AND PRICING IS
  138.  ANOTHER SIMILARITY.  IF A HYUNDAI GETS YOU FROM A TO B FOR $5,000, WHAT
  139.  DOES A FERRARI ADD FOR $70,000?  YOU CAN BUY ACCOUNTING SOFTWARE FOR $1,000
  140.  A MODULE (YOU'LL TYPICALLY NEED 3 OR 4 MODULES), OR FOR $50 TOTAL.  BOTH
  141.  ENDS OF THE SPECTRUM CLAIM TO DO THE SAME THING.  IN REALITY, PRICE IS NOT
  142.  MUCH OF A CLUE TO ANYTHING.  A LOT OF GARBAGE PROGRAMS HAVE FLASHY
  143.  PACKAGING AND HEFTY PRICE TAGS.  LUCKILY YOU'LL BE ABLE TO FIND REPUTABLE
  144.  SOURCE CODE SOFTWARE IN THE MIDDLE PRICE RANGE.
  145.  
  146.       ONE LAST OPINION.  I REGULARLY ENCOUNTER PC OWNERS WHO STILL DO (OR
  147.  HAVE DONE) ACCOUNTING BY HAND (PERHAPS USING A ONE-WRITE SYSTEM). THERE MAY
  148.  BE REASONS TO DO OTHERWISE, BUT KEEPING BOOKS IS ONE OF THE MOST VALUABLE
  149.  THINGS YOU CAN DO WITH A PC.  THAT'S BECAUSE A GOOD SYSTEM GENERATES
  150.  EXTREMELY VALUABLE MANAGEMENT REPORTS THAT ARE IMPRACTICAL TO CRANK OUT
  151.  MANUALLY.  DO IT YOURSELF, USE AN OUTSIDE SERVICE, A FREE-LANCER, OR YOUR
  152.  ACCOUNTANT; YOU WILL CERTAINLY BENEFIT FROM THE VIEW OF YOUR BUSINESS THAT
  153.  COMPUTERIZED ACCOUNTING GIVES YOU.
  154.  
  155.  
  156.  COPYRIGHT (C) 1986 JOHN L. HAWKINS, HAWKINS/BANFIELD COMMUNICATIONS,
  157.  P.O.BOX 6476, SAN RAFAEL, CA 94903.  415/525-6624, 415/492-8757.
  158.  NON-COMMERCIAL PUBLICATION ENCOURAGED, COMMERCIAL RIGHTS RESERVED.
  159.  
  160.  
  161.  
  162.  
  163.  
  164.                         HAWK'S RAM -- SEPTEMBER, 1986
  165.                                BY JOHN HAWKINS
  166.  
  167.  
  168.                                     LIST
  169.       IF YOU DON'T USE THIS EXCELLENT SHARE-WARE UTILITY, WHAT DO YOU USE?
  170.  LIST IS THE CREATION OF VERNON BUERG OF DALY CITY, AND GIVES US WHAT DOS'S
  171.  TYPE COMMAND DOESN'T: DECENT CONTROL OVER THE VIEWING OF THE CONTENTS OF A
  172.  DISK FILE.  YOU CAN MOVE BACK AND FORTH WITHIN THE FILE, SEARCH FOR
  173.  SPECIFIC CONTENTS, PRINT SOME OR ALL OF THE FILE, AND USE SEVERAL OTHER
  174.  FUNCTIONS TO MAKE YOUR LIFE EASIER. THE MOST RECENT VERSION OF LIST.COM (OR
  175.  LIST.ARC) I KNOW OF IS 6.0H.
  176.  
  177.  
  178.                               DATABASE MANAGERS
  179.       WHAT FOLLOWS IS SOME TECHNICAL TALK ON SEVERAL DBASE-RELATED PRODUCTS.
  180.  EVEN IF YOU ARE NOT A PROGRAMMER, OR HAVE NO DIRECT INTEREST IN THE
  181.  SUBJECT, GIVE IT A SCAN AND FILE IT AWAY.  A HUGE NUMBER OF BUSINESS
  182.  APPLICATIONS ARE BEING BUILT WITH THESE PRODUCTS, SO THERE'S A GOOD CHANCE
  183.  ONE OF THEM WILL FIND ITS WAY ONTO YOUR COMPUTER SOONER OR LATER.  BY BEING
  184.  FAMILIAR WITH THE PROS AND CONS OF THE POPULAR DATABASE MANAGERS YOU CAN
  185.  MAKE A MORE-INFORMED SELECTION OF OFF-THE-SHELF PACKAGES OR SPECIFICATION
  186.  OF CUSTOM APPLICATIONS.
  187.  
  188.  
  189.                                   FOXBASE+
  190.       ONE OF THE BEST CLONES OF DBASE II WAS FOXBASE, A PSEUDO-COMPILER THAT
  191.  GAVE SOURCE CODE SECURITY AND IMPROVED SPEED TO PROGRAMS WRITTEN IN DBASE
  192.  II.  NOW, AFTER AN INCREDIBLY LONG DELAY, COMES FOXBASE+, A DBASE III PLUS
  193.  VERSION THAT CAN ALSO READ DBASE II FILES.
  194.  
  195.       IN THEIR ADVERTISING, FOXBASE+ CLAIMS TO BE 6.43 TIMES FASTER THAN
  196.  DBASE III PLUS, 2.26 TIMES FASTER THAN CLIPPER, AND 6.69 TIMES FASTER THAN
  197.  DBCOMPILER III.  BUT SPEED IS IN THE MIND OF THE BEHOLDER; IT ALL DEPENDS
  198.  WHAT YOU CHOOSE TO MEASURE.
  199.  
  200.       TO MAKE THESE CLAIMS, FOX SOFTWARE DEVISED A SERIES OF STANDARDIZED
  201.  DBASE ROUTINES, THEN RAN THEM WITH EACH PRODUCT.  I'VE STUDIED THE
  202.  BENCHMARK TESTS, AND IT'S TRUE, FOXBASE WAS FASTER.  IT IS ALSO TRUE THAT
  203.  THE CHOSEN ROUTINES WERE A LIMITED SUBSET OF THE UNIVERSE OF POSSIBLE DBASE
  204.  PROGRAM ACTIVITIES.
  205.  
  206.       BEWARE OF THE FOX GUARDING THE HENHOUSE; THE FOXBASE TESTS IGNORE
  207.  SEVERAL OF THE MOST COMMON PROGRAM ROUTINES.  WHERE ARE BENCHMARK TESTS ON
  208.  RANDOM RECORD LOCATING PROCEDURES? WHAT ABOUT THE PROCESSING OF CONDITIONAL
  209.  EVALUATIONS AND BRANCHING?  HOW ABOUT NESTED MACROS?  LET'S NOT FORGET
  210.  COMPLEX COLOR-CHANGING SCREEN DISPLAY ROUTINES.  AND SINCE FOXBASE USES
  211.  DOZENS OF SMALL PROGRAM FILES RATHER THAN ONE OR TWO LARGE FILES LIKE
  212.  CLIPPER, ITS SPEED IN LOADING AND RUNNING THOSE FILES MUST ALSO BE
  213.  EVALUATED.
  214.  
  215.       FOXBASE CLAIMS INCREDIBLY SHORT COMPILE TIMES, TOO, BUT WHAT THEY CALL
  216.  "COMPILING" IS ACTUALLY TOKENIZING, A MUCH SIMPLER PROCESS.  FINALLY, THEY
  217.  BRAG ABOUT TOTAL COMPATIBILITY WITH DBASE III PLUS, YET FOXBASE USES
  218.  NON-COMPATIBLE INDEX FILES!
  219.  
  220.       FOXBASE IS EXPENSIVE, SINCE YOU NEED THE BASIC PRODUCT ($395 SINGLE
  221.  USER, $995 MULTI-USER), PLUS RUNTIME COPIES FOR EACH APPLICATION TO BE RUN
  222.  SEPARATELY FROM THE MAIN SYSTEM (AT $30 EACH SINGLE-USER, $100 EACH
  223.  MULTI-USER, SOLD ONLY IN SETS OF 10).  CLIPPER IS CHEAPER TO BUY, AND
  224.  NOTHING ADDITIONAL NEED BE PURCHASED, EVER (ALTHOUGH THERE ARE MANY WORTHY
  225.  ADD-ON PRODUCTS).  ON THE OTHER HAND, CLIPPER IS A SOPHISTICATED PRODUCT
  226.  THAT IS ONLY SUITABLE FOR PROFESSIONALS AND HARD-CORE DBASERS.
  227.  
  228.       IF FOXBASE CAN COMPILE ALMOST ALL DBASE APPLICATIONS WITHOUT PROBLEM,
  229.  AND IT DOES SPEED THEM UP, THEN THE PRODUCT HAS VALUE AND PERHAPS IS WORTH
  230.  THE MONEY.  ASHTON-TATE CAN CERTAINLY USE PRESSURE FROM PRODUCTS SUCH AS
  231.  THIS TO KEEP THEM ON THE STRAIGHT AND NARROW.  IT'S UNFORTUNATE THAT FOX
  232.  SOFTWARE FEELS THE NEED TO PROMOTE THEMSELVES WITH CLAIMS THAT ARE
  233.  TRANSPARENTLY QUESTIONABLE.
  234.  
  235.  
  236.                                  QUICKSILVER
  237.       MEANWHILE, WORDTECH IN ORINDA IS STILL IN THE RACE. UNTIL NOW, THEIR
  238.  DBCOMPILER HAS BEEN THE MOST COMPATIBLE DBASE PSEUDO-COMPILER, BUT ALSO THE
  239.  SLOWEST.  THEY'VE NOW ANNOUNCED QUICKSILVER, A $595 TRUE COMPILER IN THE
  240.  CLIPPER TRADITION, BUT APPARENTLY QUICKSILVER USES STANDARD DBASE INDEX
  241.  FILES, WHICH CLIPPER DOES NOT.
  242.  
  243.       IT WILL BE A WHILE BEFORE QUICKSILVER CAN BE EVALUATED ON ITS MERITS,
  244.  BUT THE HUGE NUMBER OF NEW PRODUCTS THAT TARGET DBASE IS AN INDICATION OF
  245.  THE PERCEIVED MARKET.  NEW DBASE COMPATIBLE PRODUCTS INCLUDE FOXBASE+,
  246.  VP-INFO, ALPHA THREE, VP-PLANNER, AND EVEN THE NEW RELEASES OF LOTUS 1-2-3
  247.  AND SYMPHONY.  MEANWHILE, ASHTON-TATE IS DOING A FAIRLY LOUSY JOB OF
  248.  SUPPORTING THE STANDARD THEY CREATED.
  249.  
  250.  
  251.                                 WORD PERFECT
  252.       VERSION 4.2 IS DUE IN NOVEMBER, WITH A $35 UPGRADE FOR 4.1 OWNERS.
  253.  WE'VE BEEN HOPING FOR FIXES FOR THE MORE INFURIATING WORDPERFECT
  254.  SHORTCOMINGS (SOME DUMB KEYS AND AWKWARD PROCEDURES), BUT THIS RELEASE IS
  255.  PROBABLY GOING TO BE LESS OF AN ADVANCEMENT THAN THE JUMP FROM 4.0 TO 4.1.
  256.  
  257.       A GOOD NEW BOOK IS "ADVANCED WORDPERFECT FEATURES AND TECHNIQUES" BY
  258.  ALDERMAN AND MAGID.  BY "ADVANCED" THEY MEAN MACROS, MATH, MAIL MERGE,
  259.  TABLE OF CONTENTS, INDEXES, ETC.  THE BOOK ALSO INCLUDES A GOOD OVERVIEW OF
  260.  THE MORE BASIC FUNCTIONS.  UNFORTUNATELY, THIS BOOK OMITS THE TRULY
  261.  ADVANCED INFORMATION THAT I GET ASKED ABOUT MOST.  JUST ABOUT EVERYTHING
  262.  DESCRIBED IS ALREADY INCLUDED IN THE PROGRAM'S MANUAL, ALTHOUGH NOT AS
  263.  CLEARLY.  IF YOU LIKE A SECOND SOURCE THIS BOOK IS RECOMMENDED.
  264.  
  265.       AVOID THE WORDPERFECT BOOK PUBLISHED BY QUE.  LIKE THEIR "DBASE III
  266.  ADVANCED PROGRAMMING", THEIR WORDPERFECT BOOK IS A COLLECTION OF OBSOLETE
  267.  INFORMATION IN A FLASHY COVER.
  268.  
  269.  
  270.                            RECORD LIBRARY MANAGER
  271.       NOT COMPUTER RECORDS, PHONOGRAPH RECORDS (AND TAPES AND COMPACT
  272.  DISKS).  ORIGINALLY DEVELOPED FOR RADIO STATIONS, THIS SOFTWARE PRODUCT
  273.  WILL CATALOG YOUR RECORD LIBRARY BY TITLE, ARTIST AND RECORDING, USING A
  274.  SOPHISTICATED SYSTEM OF RELATED DATA FILES.  YOU MAY HAVE 300 RECORDINGS OF
  275.  "STARDUST," BUT RLM IS SMART ENOUGH TO ONLY STORE THE TITLE ONCE, THEN
  276.  MATCH IT UP WITH EACH ALBUM OR TAPE THAT HAS IT.  SIMILARLY, STORING THE
  277.  ARTIST'S NAME WITH EACH RECORDING WOULD BE INEFFICIENT, SO RLM KEEPS THEM
  278.  SEPARATE.  YOU ONLY NEED TO TYPE "BILL HALEY AND HIS COMETS" ONCE.  IF YOU
  279.  HAVE A SIZEABLE RECORD COLLECTION (OR RUN A RADIO STATION), CHECK IT OUT.
  280.  
  281.  
  282.  COPYRIGHT (C) 1986 JOHN L. HAWKINS, HAWKINS/BANFIELD COMMUNICATIONS,
  283.  P.O.BOX 6476, SAN RAFAEL, CA 94903.  415/525-6624, 415/492-8757.
  284.  NON-COMMERCIAL PUBLICATION ENCOURAGED, COMMERCIAL RIGHTS RESERVED.
  285.  
  286.  
  287.  
  288.  
  289.                         HAWK'S RAM -- SEPTEMBER, 1986
  290.                                BY JOHN HAWKINS
  291.  
  292.  
  293.                                 DBASE III PLUS
  294.       IF YOU'RE A REGISTERED OWNER YOU'VE RECEIVED THE OFFER TO UPGRADE TO A
  295.  NON-COPY PROTECTED VERSION FOR $45.  IN CASE YOU'RE AMONG THE MANY WHO HAVE
  296.  ALREADY USED A UTILITY OR PATCH TO REMOVE COPY PROTECTION FROM VERSION 1.0,
  297.  NOTE THAT THEY'VE NAMED THE UPGRADE "VERSION 1.1."  WITH THAT MONIKER, YOU
  298.  MAY BE ENTICYK9TO TO BUYING IT FOR NEW FEATURES.
  299.  
  300.       BE ADVISED THAT EVERY SOURCE I'VE BEEN ABLE TO TAP CLAIMS THAT VERSION
  301.  1.1 HAS NO NEW FEATURES, AND IS ACTUALLY JUST THE RECENTLY RELEASED BUG FIX
  302.  RENAMED.  INTERNALLY THE ORIGINAL DBASE III PLUS WAS CALLED "X77", THE BUG
  303.  FIX WAS "X95", AND VERSION 1.1 IS CALLED "X100".  REVISIONS X95 AND X100 USE
  304.  THE SAME OVERLAY FILE, SO VERY LITTLE COULD HAVE BEEN CHANGED.  THE BUG FIX
  305.  WAS FREE TO THOSE WHO COMPLAINED LOUDLY ENOUGH ABOUT CERTAIN SERIOUS
  306.  PROBLEMS, SO THE CHANCE TO BUY IT FOR $45 IS A DARN NICE OPPORTUNITY, I'D
  307.  SAY.
  308.  
  309.       DBASE IS A FUNNY ANIMAL.  IT'S HARD TO LEARN AND YET, ONCE LEARNED,
  310.  EASY AND POWERFUL TO USE.  YOU DON'T NEED TO WRITE PROGRAMS, BUT SOME OF THE
  311.  NICEST FEATURES ARE ONLY AVAILABLE IF YOU DO SO.  I RECOMMEND MAKING DBASE
  312.  THE FOUNDATION OF MOST BUSINESS APPLICATIONS, YET I DON'T RECOMMEND TRYING
  313.  TO WRITE COMPLEX APPLICATIONS UNLESS YOU ARE AN EXPERIENCED PROGRAMMER OR
  314.  YOU CAN LIVE WITH THE DATA DESTRUCTION THAT ACCOMPANIES BUG EXTERMINATION.
  315.  LASTLY, YOU'LL NOT BE HAPPY WITH THE PERFORMANCE OF A LARGE APPLICATION THAT
  316.  IS NOT COMPILED FOR SPEED, BUT COMPILING IS TRULY A TRICKY PROPOSITION (AND
  317.  COMPILERS ARE AN ADDITIONAL EXPENSE).  BUT THE SAME COMPLAINTS ABOUT
  318.  DIFFICULTY AND BUGS AND EXPENSE CAN BE APPLIED TO EVERY OTHER DEVELOPMENTAL
  319.  LANGUAGE, NONE OF WHICH HAVE DBASE'S FRIENDLY SIDE. BASIC AND TURBO PASCAL
  320.  ARE BEST SUITED FOR SMALL APPLICATIONS.  DBASE IS STILL THE TOOL OF CHOICE
  321.  WHEN DEVELOPING BUSINESS SYSTEMS (NOT BUSINESS SOFTWARE, BUSINESS SYSTEMS).
  322.  IT'S BEEN CLAIMED THAT MOST BUSINESSES THAT DON'T HAVE AT LEAST ONE
  323.  DBASE-RELATED APPLICATION ON THEIR PC ARE PROBABLY DOING SOMETHING WRONG.
  324.  
  325.  
  326.                                   DBASE BUGS
  327.       AN EJECT WITH NO PRINTER ON-LINE MAY LOCK THE COMPUTER AND REQUIRE A
  328.  REBOOT.  THERE ARE TRICKY WAYS TO CHECK PRINTER STATUS USING EXTERNAL
  329.  UTILITIES.  THE RISK OF A LOCKUP IS DATA LOSS, AS REBOOTING FROM WITHIN
  330.  DBASE IS ALWAYS DANGEROUS.
  331.  
  332.       ONE OF THE MOST SERIOUS PROBLEMS WITH DBASE IS THAT YOU CAN SEEK (OR
  333.  FIND) A RECORD, USING THE PROPER KEY AND WITH THE PROPER INDEX, AND NOT FIND
  334.  SOMETHING THAT ACTUALLY EXISTS!  OR FIND IT BUT BE TOLD YOU HAVEN'T FOUND
  335.  IT!  IF IT IS VITAL THAT YOU FIND THE RECORD (WHY WOULD YOU BE LOOKING FOR
  336.  IT OTHERWISE?), THIS CAN BE A DEADLY BUG.  DID A NEW RECORD GET CREATED TO
  337.  RECORD A PAYMENT BECAUSE THE SYSTEM DIDN'T FIND THE EXISTING RECORD, AND NOW
  338.  YOU THINK SOMEONE IS A DEADBEAT AND THREATEN TO SUE THEM?  DID YOU LEAVE
  339.  SOMEONE OFF YOUR MAILING LIST, OR SEND THEM TWO OF EVERYTHING?  THERE ARE
  340.  SEVERAL CIRCUMSTANCES WHERE THE QUIRKS OF SEEK/FIND CAN REALLY UN-MAKE YOUR
  341.  DAY.  SOME EXAMPLES I'VE DISCOVERED.
  342.  
  343.       FIND & MEMVAR CAN RETURN "NO FIND" UNDER VARIOUS CIRCUMSTANCES I
  344.  HAVEN'T FULLY EXPLORED, BUT THIS ONE IS EASY TO WORK AROUND.  I CAN'T THINK
  345.  OF A SINGLE REASON TO USE FIND WITHIN A PRG FILE.  LOTS OF COMMERCIAL
  346.  PROGRAMS AND BOOKS USE THIS COMMAND BECAUSE IT WAS STANDARD IN DBASE II.
  347.  CHANGE THE COMMAND TO SEEK MEMVAR.  IF YOU SEE "FIND" IN A PROGRAM THAT
  348.  PURPORTS TO BE FOR DBASE III, ASK THEM WHY THEY ARE USING AN OBSOLETE
  349.  TECHNIQUE.
  350.  
  351.       IF THE DATABASE IS INDEXED ON A NUMERIC FIELD AND YOU MISTAKENLY TRY TO
  352.  SEEK A CHARACTER STRING, DBASE APPARENTLY FIRST PERFORMS AN IMPLICIT VAL(),
  353.  THEN SEEK.  SINCE THE VAL() OF A CHARACTER STRING THAT DOES NOT BEGIN WITH A
  354.  NUMBER IF ALWAYS ZERO, YOU'LL ACTUALLY FIND THE FIRST RECORD WITH A ZERO
  355.  VALUE IN THE KEY FIELD.  OR MAYBE YOU'LL FIND THE FIRST RECORD WITH A
  356.  NUMERIC VALUE THAT MATCHES WHATEVER NUMBER HAPPENED TO BE AT THE HEAD OF THE
  357.  CHARACTER STRING. I THINK DBASE SHOULD RECOGNIZE THE DATA TYPE MISMATCH AND
  358.  ISSUE AN ERROR, RATHER THAN ASSUME A VALUE AND CHARGE AHEAD.
  359.  
  360.       HERE'S A REAL PAIN I WASTED A LOT OF TIME WITH.  IF YOU HAVE SET
  361.  DELETED ON AND TRY TO FIND OR SEEK A KEY WITH MULTIPLE OCCURRENCES, AND THE
  362.  FIRST SUCH OCCURRENCE IS DELETED, YOU'LL NEVER FIND THE OTHERS IF YOU FOLLOW
  363.  THE DOCUMENTED PROCEDURE.  IN THIS SITUATION THE DELETED RECORD WILL BE
  364.  FOUND, BUT THE FOUND() FUNCTION WILL RETURN .F., SO YOU'LL ASSUME NOTHING
  365.  WAS FOUND.  WHAT IT SHOULD DO IS SKIP ALONG PAST DELETED RECORDS UNTIL IT
  366.  FINDS THE FIRST MATCHING ACTIVE RECORD.  A WORKAROUND IS TO TEST FOR EOF(),
  367.  WHICH WILL RETURN .F. IF YOU HAVE ACTUALLY FOUND A RECORD THAT FOUND() IS
  368.  TELLING YOU WASN'T FOUND.  THAT WILL TELL YOU IF IT IS ACTUALLY FOUND, BUT
  369.  GETTING TO THE FIRST MATCHING ACTIVE RECORD REQUIRES TESTING FOR THE
  370.  CONDITION (FOUND() = F. .AND. EOF() = .F.), THEN EXECUTING VERY MESSY BIT OF
  371.  EXTRA CODE.
  372.  
  373.       I HAVE OF INDEXES GETTING DAMAGED WHEN THE LENGTH OF THE KEY FIELD AND
  374.  THE PATH TO THE NDX FILE GET TOO LARGE.  I HAVE ALSO HEARD THAT IT CAN BE
  375.  HAZARDOUS TO INDEX WHILE TALK IS SET OFF.  CHECK WITH ASHTON-TATE ON THESE.
  376.  
  377.       THIS ONE IS SUPPOSEDLY FIXED IN VERSION 1.1, BUT I STILL GET THE SAME
  378.  ANOMALOUS RESULTS.  A DATABASE INDEXED ON A DATA FIELD PUTS BLANK DATES AT
  379.  THE BOTTOM OF THE FILE, EVEN THOUGH BLANK CHARACTER AND NUMERIC FIELDS ARE
  380.  PUT AT THE TOP.  SO DBASE SEEMS TO VIEW BLANK DATES AS BEING "MORE RECENT"
  381.  THAN ANY OTHER DATE IN AN INDEX, RIGHT? WRONG!  IT DOES NOT DO SO WHEN
  382.  MAKING COMPARISONS.  A BLANK DATE FIELD IS NOT GREATER THAN, LESS THAN, NOR
  383.  EQUAL TO ANYTHING.  IT IS NOTHING.  THE ONLY VALID WAY TO COMPARE DATES
  384.  WHERE ONE OF THEM MIGHT BE BLANK IS BY COMPARING THE DTOC() VERSIONS OF
  385.  EACH.  BUT IF ONE OF THEM IS NOT BLANK, DTOC() CAN'T ACCURATELY COMPARE FOR
  386.  GREATER THAN/LESS THAN.  SO YOU HAVE TO DO CONSTRUCT A CONDITIONAL SEQUENCE
  387.  OF COMPARISONS TO COVER THE VARIOUS POSSIBILITIES.  I SPENT THREE MONTHS ON
  388.  THAT ONE.
  389.  
  390.       IF YOU SET FILTER TO <SOMETHING> THAT DOESN'T EXIST, THEN GO BOTTOM,
  391.  YOU'LL GET STUCK.  I ROUTINELY INCLUDE SUCH A MANEUVER IN MY DATABASE
  392.  SCANNING ROUTINES.  BUT THEN NEITHER SKIP NOR SKIP -1 WILL MOVE YOU. I'VE
  393.  PROBABLY SPENT 100 HOURS TEARING APART PROGRAMS, LOOKING FOR MY MISTAKE THAT
  394.  WOULD GET THE SYSTEM STUCK.  THE BEST CLUE IS THAT THE RECORD NUMBER WILL
  395.  APPARENTLY BE ONE GREATER THAN THE DATABASE SIZE. TO GET FREE, IT TAKES MORE
  396.  THAN JUST DEACTIVATING THE FILTER.  AS NEAR AS I CAN FIGURE, ONLY GO TOP
  397.  WILL GET YOU UNSTUCK.  THE PROBLEM IS, HOW CAN YOU KNOW WHETHER SUCH A
  398.  SITUATION IS POSSIBLE AT SOME POINT IN THE FUTURE, SINCE IT DEPENDS UPON THE
  399.  DATA ENTERED?
  400.  
  401.       THE ONLY SAFE PROCEDURE IS TO ALWAYS ISSUE A GO TOP AFTER A GO BOTTOM
  402.  WHEN A FILTER IS ACTIVATED.  ALONG THE SAME LINES, I'VE FOUND IT SAFER TO
  403.  ALWAYS ISSUE A GO TOP AFTER SET FILTER TO <SOMETHING), OTHERWISE THE FIRST
  404.  RECORD CAN FALL THROUGH THE FILTER.  ANYTIME A FILTER IS SET (OR CHANGED) A
  405.  GO TOP IS ADVISABLE.  IF YOU WANT TO STAY WHERE YOU ARE IN THE DATABASE,
  406.  STORE THE RECORD NUMBER, GO TOP, THEN GO RECORD NUMBER.  IF THERE IS A
  407.  CLEANER, TOTALLY RELIABLE WAY TO HANDLE THIS, I DON'T KNOW WHAT IT IS.
  408.  
  409.       AS SOON AS I CONVERTED TO DBASE III PLUS THIS ONE STOPPED ME DEAD IN MY
  410.  TRACKS.  IF YOU ISSUE A READ WITH NO PENDING GET, DBASE WILL STOP. THIS
  411.  SITUATION COULD HAVE EXISTED IN PREVIOUS VERSIONS WITHOUT SHOWING UP AS A
  412.  PROBLEM.  YOU CAN HIT ANY KEY TO CONTINUE, BUT THE USER NOT SEE A GET FIELD
  413.  AND WILL HAVE NO HINT OF HOW TO PROCEED PAST THIS UNEXPECTED PAUSE.
  414.  
  415.       THE READKEY() FUNCTION, WHICH WAS QUITE VALUABLE IN DBASE III 1.2, DOES
  416.  NOT FUNCTION CORRECTLY IN DBASE III PLUS.  JUST FORGET IT.
  417.  
  418.       SET ORDER TO IS A GREAT IDEA THAT ONLY HALFWAY WORKS.  SET ORDER TO 0
  419.  IS SUPPOSED TO TURN OFF INDEX CONTROL BUT MAINTAIN INDEX INTEGRITY. IT
  420.  DOESN'T, SO DON'T MAKE ANY CHANGES TO KEY FIELDS IN THIS SITUATION, OR
  421.  REINDEX AFTER RETURNING TO INDEX CONTROL.
  422.  
  423.       SET PRINTER TO IS ONE OF THE SERIOUS BUGS THAT LED TO THE RECENT FREE
  424.  1.0 UPDATE, NOW BEING SOLD AS THE NEW "VERSION 1.1".  IT'S A COMPLICATED
  425.  ISSUE INVOLVING POTENTIALLY HUGE PROBLEMS WITH SERIAL PRINTERS.  LET'S HOPE
  426.  IT'S BEEN FIXED.
  427.  
  428.       INDEX WITH THE UNIQUE FEATURE IS UNRELIABLE AND CAN BE FATAL (TO YOUR
  429.  INDEX, NOT YOU).  JUST PUT A BIG "X" THROUGH THIS PAGE IN YOUR
  430.  DOCUMENTATION, AND GRUMBLE ABOUT ANOTHER GREAT IDEA SCREWED UP.
  431.  
  432.       WHEN PACKING OR ZAPPING A DATABASE, DO IT WITH ALL INDEXES ACTIVE, OR
  433.  ALWAYS REINDEX AFTERWARD.  OTHERWISE YOU'LL END UP WITH CORRUPTED INDEXES
  434.  AND HAVE TO REINDEX ANYWAY.
  435.  
  436.       IF I'VE SCARED YOU AWAY FROM USING PROGRAMS DEVELOPED UNDER DBASE III
  437.  PLUS, CONSIDER THAT THE ALTERNATIVES HAVE THEIR OWN PROBLEMS. BASICALLY,
  438.  DBASE WORKS GREAT.  THE MANY PROBLEMS WITH NEWER FEATURES IMPLIES THAT
  439.  ASHTON-TATE CONTINUES TO PASS ON THE BETA TESTING PROCESS TO US.  OH WELL,
  440.  THERE MAY BE NO SUCH THING AS BUG-FREE SOFTWARE.  WHEN PROBLEMS DO OCCUR,
  441.  FEW OTHER WIDELY USED PROGRAMS OFFER THE ABILITY TO RECOVER THAT DBASE DOES.
  442.  
  443.  
  444.  COPYRIGHT (C) 1986 JOHN L. HAWKINS, HAWKINS/BANFIELD COMMUNICATIONS, P.O.BOX
  445.  6476, SAN RAFAEL, CA 94903.  415/525-6624, 415/492-8757.  NON-COMMERCIAL
  446.  PUBLICATION ENCOURAGED, COMMERCIAL RIGHTS RESERVED.
  447.  
  448.  
  449.  
  450.  
  451.  
  452.                       HAWK'S RAM -- OCTOBER, 1986
  453.                             BY JOHN HAWKINS
  454.  
  455.  
  456.  COMTEL PROGRAMMERS TOOLS
  457.  
  458.  A FRIEND RECENTLY TOLD ME OF A SUPERIOR TEXT AND PROGRAM EDITOR CALLED
  459.  INSTANT EDITOR.  BECAUSE IT SOUNDED LIKE A DREAM COME TRUE, I CONTACTED THE
  460.  DEVELOPER, COMTEL.  WHAT I WALKED AWAY WITH WAS AN ENTIRE SET OF THEIR
  461.  EXCITING PROGRAMMER UTILITIES: DBTOOLS, DBSCOPE, CLMAKE, AND INSTANT
  462.  EDITOR.  THERE ARE A FEW ROUGH EDGES, BUT I'M ALREADY TOTALLY HOOKED.
  463.  COMTEL PRINCIPAL AND PROGRAMMER BILL HO IS EXTREMELY RESPONSIVE TO USER
  464.  INPUT (HE IMPLEMENTED TWO OF MY SUGGESTIONS WITHIN ONE WEEK).  GIVEN THE
  465.  POWER OF THESE PRODUCTS, AND THE PERSONAL, SINCERE, SKILLED SUPPORT OF BILL
  466.  HO, I AM CONFIDENT THAT PURCHASING COMTEL'S PRODUCTS WILL PROVE TO BE A
  467.  VERY WISE INVESTMENT.  IF YOU ARE A PROGRAMMER, ESPECIALLY IN DBASE BUT
  468.  ALSO IN PASCAL AND C, I CANNOT RECOMMEND THEM HIGHLY ENOUGH.
  469.  
  470.  
  471.  DBTOOLS
  472.  
  473.  THIS PACKAGE OF VARIOUS DBASE PROGRAMMING TOOLS WAS DEVELOPED BY DBASE
  474.  USERS FOR DBASE USERS.  IF YOU WRITE SERIOUS DBASE PROGRAMS AND TIME IS A
  475.  VALUABLE RESOURCE, YOU NEED DBTOOLS.  EVERYTHING IN THE TOOLKIT IS USEFUL;
  476.  HERE ARE MY FAVORITES:
  477.  
  478.  DLIST
  479.  
  480.  THE FIRST STEP IN MAKING DBASE SOURCE CODE MAINTAINABLE IS TO PROPERLY
  481.  INDENT THE VARIOUS CONTROL STRUCTURES AND PROGRAM LEVELS. DLIST DOES SUCH A
  482.  SUPERB JOB OF CLEANING UP ANY SOURCE CODE THAT IT IS NOW THE FIRST THING I
  483.  REACH FOR WHEN FACED WITH MODIFYING SOMEONE ELSE'S PROGRAM.  A VARIETY OF
  484.  INSTALLATION PARAMETERS AND COMMAND LINE FLAGS ALLOW ALMOST TOTAL CONTROL
  485.  OVER EVERY ASPECT OF INDENTATION, CAPITALIZATION, CONDITION DOCUMENTING AND
  486.  MORE.  AFTER SEVERAL YEARS OF EXPERIMENTATION I'VE SETTLED ON A DBASE
  487.  SOURCE CODE CONVENTION OF SHOWING VARIABLE NAMES IN UPPER CASE AND KEYWORDS
  488.  IN LOWERCASE.  BECAUSE DLIST PROVIDES EVERY OPTION I CAN THINK OF, IT IS
  489.  THE ONLY UTILITY OF ITS TYPE THAT HAS ALLOWED ME TO AUTOMATICALLY FORMAT
  490.  CODE MY WAY (AND SEVERAL OTHER WAYS TOO).
  491.  
  492.  ALL OF THE DBTOOLS MODULES THAT DO REFORMATTING OR CROSS-REFERENCING SHARE
  493.  A KEYWORD FILE CREATED BY THE USER, SO THE PROGRAMS CAN BE KEPT CURRENT
  494.  WITH REVISIONS AND ENHANCEMENTS TO DBASE.  THIS IS ESPECIALLY IMPORTANT
  495.  WITH CLIPPER, WHERE A PROGRAMMER CAN CREATE ANY NUMBER OF USER-DEFINED
  496.  FUNCTIONS WHICH THEN BECOME ADDITIONAL KEYWORDS.  IN FACT, YOU MIGHT CREATE
  497.  SEPARATE KEYWORD-SPECIFIC VERSIONS OF DBTOOLS FOR DBASE AND CLIPPER.
  498.  
  499.  A FEW WEEKS AGO I WOULD HAVE SAID "AMONG THE VERY FEW SHORTCOMINGS OF DLIST
  500.  ARE ITS HANDLING OF CONTINUATION LINES AND FORMATTING OF CASE STATEMENTS".
  501.  INSTEAD, I CALLED COMTEL.  VERSION 1.31 OF DLIST NOW INCLUDES THE ABILITY
  502.  TO MARK WITH A *F.- / *F.+ PAIR SECTIONS OF CODE THAT YOU DO NOT WANT DLIST
  503.  TO REFORMAT.  THIS IS VERY HELPFUL IF YOU LIKE TO INDENT CONTINUATION LINES
  504.  (LINES ENDING IN SEMI-COLON THAT ARE CONTINUED ON NEXT LINE) OR DO OTHER
  505.  UNUSUAL INDENTING OF SOURCE CODE FOR READABILITY.  FOR EXAMPLE, MANY
  506.  PROGRAMMERS LIKE TO STACK A GET STATEMENT DIRECTLY UNDER THE SAY PORTION OF
  507.  THE SAME PROGRAM LINE.  EVEN THOUGH THE NEW FORMATTING ON/OFF SYMBOLS DO
  508.  THE TRICK, I WOULD PREFER A SMART, CONTROLLABLE INDENTATION THAT HAS THE
  509.  ABILITY TO SPECIFY HOW MUCH DLIST SHOULD INDENT THE CONTINUATION FROM THE
  510.  PREVIOUS LINE, INCLUDING AN OPTION TO INDENT THE LINE AND ITS CONTINUATION
  511.  AS A BLOCK WITH NO REFORMATTING.  THAT'S A SMALL COMPLAINT, CONSIDERING HOW
  512.  QUICKLY COMTEL RESPONDED TO AND SOLVED THE BASIC PROBLEM.
  513.  
  514.  AN MINOR AREA OF CONTROVERSY AMONG DBASE PROGRAMMERS IS HOW TO INDENT CASE
  515.  STATEMENTS.  QUICKLY RESPONDING TO MY SUGGESTION, COMTEL MODIFIED DLIST
  516.  1.31 TO PROVIDE A CHOICE.   ONE OPTION IS TO DO AS MANY OTHER FORMATTING
  517.  UTILITIES DO AND PLACE ANOTHER FULL LEVEL OF INDENTATION ON CASE STATEMENTS
  518.  FOLLOWING A DO CASE.  THIS MAY SEEM AESTHETICALLY DESIRABLE, BUT IT IMPLIES
  519.  A SUBORDINATE RELATIONSHIP THAT DOES NOT EXIST.  THE DO CASE LINE IS NOT A
  520.  SEPARATE LEVEL OF PROCESSING, BUT MERELY AN INITIALIZING STATEMENT THAT IN
  521.  MANY LANGUAGES IS NOT NEEDED.  FURTHER, EVERY LEVEL OF INDENTATION BALLOONS
  522.  THE PROGRAM SIZE.  BECAUSE IT IS DESIRABLE TO LIMIT LINE WIDTH TO 79 OR 80
  523.  CHARACTERS FOR SCREEN AND PRINTER PURPOSES, UNNECESSARY INDENTATION
  524.  REQUIRES THE PROGRAMMER TO MANUALLY INSERT CONTINUATION LINES, FURTHER
  525.  WASTING TIME AND SPACE.  COMTEL HAS ALREADY RESPONDED BY INCLUDING AN
  526.  OPTION TO STACK CASE STATEMENTS DIRECTLY UNDER DO CASE.  AS OF THIS WRITING
  527.  THESE CHANGES HAVE NOT BEEN INCLUDED IN AN UPDATE TO INSTANT EDITOR
  528.  (DESCRIBED BELOW).
  529.  
  530.  THE ONE TRUE OMISSION IN DLIST AND THE OTHER COMTEL FORMATTING UTILITIES IS
  531.  IGNORANCE OF THE CLIPPER FOR...NEXT CONSTRUCTION, WHICH SHOULD BE INDENTED
  532.  LIKE OTHER LOOPS.  I CAN'T THINK OF A SITUATION WHERE DBASE CODE WOULD BE
  533.  AFFECTED.
  534.  
  535.  I FOUND ONE APPARENT BUT MINOR BUG.  DLIST IS SMART ENOUGH TO NOT REFORMAT
  536.  LINES BETWEEN TEXT AND ENDTEXT, BUT APPARENTLY NOT SMART ENOUGH TO IGNORE
  537.  THE CONTENTS.  MESSAGE LINES BEGINNING WITH "IF", FOR EXAMPLE, CAUSED DLIST
  538.  TO ACTIVATE ITS CONTROL STRUCTURE ANALYZER, WHICH ISSUED AN IRRELEVANT
  539.  ERROR MESSAGE ABOUT NO MATCHING "ENDIF". DBASE USED TO HAVE THE SAME BUG,
  540.  WITH BIZARRE RESULTS.  THIS NO LONGER SEEMS TO BE A PROBLEM TO DBASE, BUT
  541.  IT IS TO DLIST.
  542.  
  543.  
  544.  DCALL
  545.  
  546.  GETTING THE BIG PICTURE OF HOW A PROGRAM LOOPS AND BRANCHES IS ESSENTIAL TO
  547.  UNDERSTANDING WHAT IS GOING ON.  BUT ACTUAL SOURCE CODE IS MOSTLY SCREEN
  548.  AND DATA MANIPULATION AND HOUSEKEEPING ROUTINES. READING SOURCE CODE TO
  549.  GLEAN A MENTAL MAP OF THE PROGRAM'S LOGIC IS LIKE USING "GONE WITH THE
  550.  WIND" TO GET A QUICK OVERVIEW OF THE CIVIL WAR.  INSTEAD, READ "GONE WITH
  551.  THE WIND" FOR THE SEX AND VIOLENCE WHILE COMTEL'S DCALL QUICKLY PRINTS A
  552.  SYSTEM FLOW CHART OF YOUR APPLICATION.  BY USING A MULTITUDE OF FLAGS, A
  553.  DCALL FLOW CHART CAN HIDE OR REVEAL CALLING PARAMETERS, USAGE OF EACH AND
  554.  EVERY TYPE OF DBASE SUPPORT FILE, AND MORE.  IF YOU ARE TRYING TO
  555.  UNDERSTAND SOMEONE ELSE'S CODE, THIS IS THE FIRST DBTOOL TO REACH FOR.
  556.  
  557.  I DID FIND ONE PROBLEM, PROBABLY CAUSED BY A STACK ALLOCATION QUIRK IN
  558.  TURBO PASCAL, THE TOOL USED TO CREATE DBTOOLS.  ABOUT HALFWAY THROUGH A
  559.  MEDIUM LARGE APPLICATION A SIGNIFICANT ERROR SLIPPED INTO THE DIAGRAM.
  560.  DCALL AUTOMATICALLY ANALYZES PROCEDURE FILES AS THEY ARE ESTABLISHED.  THEN
  561.  WHEN THE PROGRAM ISSUES A DO TO A MODULE THAT IS IN THE PROCEDURE FILE,
  562.  DCALL INDICATES THE PROCEDURE FILE NAME IN THE DIAGRAM.  THIS IS A RARE AND
  563.  VERY POWERFUL CAPABILITY, BUT SOMEWHERE IN DIAGRAMING MY APPLICATION THE
  564.  PROCEDURE FILE NAME GOT TRASHED.  ABOUT HALFWAY THROUGH IT CHANGED THE
  565.  REFERENCE NAME OF MY PROCEDURE FILE FROM "HOEPROC1.PRG" TO ABOUT 57
  566.  CHARACTERS OF GARBAGE. BECAUSE DCALL PRINTED THIS NEW NAME CONSISTENTLY
  567.  THEREAFTER, IT SEEMS THE NAME STORAGE LOCATION IN RAM GOT OVERWRITTEN.
  568.  THIS APPARENTLY ONLY HAPPENS WHEN MORE THAN ONE PROCEDURE FILE IS USED.
  569.  COMTEL IS WORKING ON A FIX.
  570.  
  571.  
  572.  DVIEW
  573.  
  574.  AS VALUABLE AS DCALL IS, IF YOU MAKE FREQUENT CHANGES TO THE PROGRAM,
  575.  PRINTING NEW FLOW CHARTS CAN EAT UP LOTS OF PAPER AND TIME.  THAT'S WHY
  576.  COMTEL CREATED DVIEW.  DVIEW DOES WHAT DCALL DOES, BUT INTERACTIVELY RIGHT
  577.  ON THE SCREEN.  YOU CAN MOVE AROUND THE FILE ON THE SCREEN, USE A FILTER
  578.  PARAMETERS TO REVEAL OR HIDE VARIOUS SPECIFIED COMMAND LINES, AND QUICKLY
  579.  SEE WHAT IS GOING ON.
  580.  
  581.  THIS IS A WONDERFUL TOOL, AND I HAVE ONLY THREE DESIRES.  DVIEW PERFORMS
  582.  THE SAME INDENTATION OF CASE UNDER DO CASE AS DLIST, ESPECIALLY UNDESIRABLE
  583.  WHEN VIEWING THE STRUCTURE ON SCREEN.  I EXPECT AN UPDATED VERSION SOON.
  584.  SECOND, DVIEW ALLOWS YOU TO TURN ON OR OFF THE AUTOMATIC VIEWING OF SET...
  585.  COMMANDS.  BUT SOME SET COMMANDS, SUCH AS SET FILTER AND SET INDEX, ARE
  586.  VITAL INFORMATION IN UNDERSTANDING WHAT THE PROGRAM IS DOING.  OTHERS, LIKE
  587.  SET COLOR, SET CONFIRM, AND SET BELL, ARE TRIVIAL FUNCTIONS.  I'D LIKE THE
  588.  OPTION TO HAVE DVIEW SHOW THE MAJOR SET COMMANDS BUT IGNORE THE OTHERS.
  589.  
  590.  FINALLY, EVEN THOUGH DVIEW TRIES TO DIAGRAM PROGRAM FLOW BY SHOWING CONTROL
  591.  STRUCTURES, IT IGNORES LOOP, EXIT AND RETURN.  THESE ARE JUST AS IMPORTANT
  592.  AS THE OTHERS, AND REALLY MUST BE INCLUDED IN THE DIAGRAM.  COMTEL IS
  593.  PLANNING TO ADDRESS THESE AREAS OF DVIEW VERY SOON.
  594.  
  595.  
  596.  DX3
  597.  
  598.  IN ANY BUT THE MOST TINY PROGRAM, KEEPING TRACK OF VARIABLE USAGE IS A
  599.  MAJOR TASK.  IT IS DANGEROUS TO CARELESSLY USE THE SAME VARIABLE NAME IN
  600.  MULTIPLE AREAS OF THE PROGRAM, BUT IT IS ALSO COUNTER-PRODUCTIVE TO
  601.  CONTINUE TO ESTABLISH NEW VARIABLE NAMES JUST TO BE SAFE.  UNLESS YOU HAVE
  602.  AN INCREDIBLE MEMORY, A CROSS-REFERENCING UTILITY IS ESSENTIAL, AND DX3
  603.  DOES A PERFECT JOB.
  604.  
  605.  A MINOR COMPLAINT IS THAT, UNLIKE OTHER DBTOOLS UTILITIES, DX3 PRINTS ALL
  606.  VARIABLE NAMES IN LOWER CASE IN ITS REPORTS.  I'D PREFER THE SAME LEVEL OF
  607.  CONTROL PROVIDED BY DLIST AND DCALL.
  608.  
  609.  
  610.  
  611.  
  612.  
  613.                          HAWK'S RAM -- OCTOBER, 1986
  614.                                    PART 2
  615.  
  616.  
  617.  OTHER DBTOOLS
  618.  
  619.  ADDITIONAL COMPONENTS OF THE DBTOOLS PACKAGE INCLUDE BU TO BACKUP FILES
  620.  USING DOS COPY; MKBAT TO AUTOMATICALLY CREATE A BATCH FILE TO PROCESS
  621.  MULTIPLE INPUT FILES (TREMENDOUSLY HELPFUL); DISPSTRU TO DISPLAY AND PRINT
  622.  THE CONTENTS OF DBASE DBF FILES; DOPT TO OPTIMIZE INTERPRETED DBASE PROGRAM
  623.  EXECUTION BY STRIPPING UNNECESSARY CODE AND SPACE FROM PRG FILES; DPRINT TO
  624.  PRINT VERY ATTRACTIVE LISTINGS OF PRG FILES; FINDPATT TO FIND ANY STRING
  625.  PATTERN IN A GROUP OF FILES (SIMILAR TO BUT NOT AS POLISHED AS NORTON'S
  626.  TEXT SEARCH); AND WS2ASCII TO CLEAN UP AND CONVERT WORDSTAR FILES TO PURE
  627.  ASCII.
  628.  
  629.  
  630.  DBSCOPE
  631.  
  632.  THIS MEMORY-RESIDENT UTILITY, NOT PART OF THE DBTOOLS PACKAGE, IS A VERY
  633.  USEFUL ADDITION TO DBASE.  DBSCOPE ALLOWS YOU TO WATCH THE PROGRAM CODE OF
  634.  YOUR DBASE APPLICATION AS IT RUNS, IN REAL-TIME, SO YOU CAN UNDERSTAND THE
  635.  AFFECTS OF EACH LINE, SPOT BUGS, AND EXPERIMENT.  IT'S A GREAT LEARNING
  636.  TOOL FOR SOMEONE NEW TO DBASE, AND QUITE VALUABLE TO PROS AS WELL.  YOU CAN
  637.  RUN AND VIEW THE PROGRAM IN FAST, SLOW OR SINGLE-STEP MODE, OR TURN OFF THE
  638.  LIVE-ACTION WINDOW AND COLLECT THE LAST 100 LINES FOR LATER INSTANT-REPLAY.
  639.  
  640.  DBSCOPE CAN ALSO BE USED WITH CLIPPER, BUT WITH LIMITED VALUE.  WHAT
  641.  DBSCOPE DOES IS INTERCEPT WHATEVER IS SENT TO THE PRINTER AND DISPLAY IT IN
  642.  AN ON-SCREEN WINDOW.  (THIS IS A CLEVER TECHNIQUE THAT MAY HAVE OTHER
  643.  APPLICATIONS.)  IN DBASE THE COMMANDS SET DEBUG ON AND SET ECHO ON WILL
  644.  DIRECT PROGRAM LINES TO THE PRINTER AS THE PROGRAM RUNS. DBSCOPE THEN GRABS
  645.  THEM FOR REAL-TIME DISPLAY IN A SCREEN WINDOW. DBSCOPE IS LESS USEFUL WITH
  646.  CLIPPER.  THE DEBUGGER HAS A PRINTER OUTPUT FEATURE, BUT WHAT IT SENDS TO
  647.  THE PRINTER IS SO SKIMPY THAT YOU WON'T GET MUCH FROM IT.  COMTEL IS
  648.  EXPLORING THE DEVELOPMENT OF A MUCH MORE CAPABLE CLIPPER VERSION OF
  649.  DBSCOPE.
  650.  
  651.  
  652.  CLMAKE
  653.  
  654.  IF YOU DO MUCH CLIPPER COMPILING, CLMAKE (OR ANOTHER "MAKE" UTILITY) IS
  655.  ABSOLUTELY ESSENTIAL.  LARGE APPLICATIONS ARE TYPICALLY MADE UP OF A SERIES
  656.  OF OBJ FILES THAT ARE LINKED.  THESE OBJ FILES ARE CREATED BY COMPILING
  657.  SEVERAL RELATED PRG FILES.  WHENEVER A CHANGE IS MADE IN ONE OR MORE PRG
  658.  FILES, THE CORRESPONDING OBJ FILES MUST BE RECOMPILED, THEN THE ENTIRE
  659.  APPLICATION RE-LINKED.  IF YOU DON'T KNOW WHAT HAS BEEN CHANGED, YOU CAN
  660.  TAKE SOME TIME TO FIGURE OUT WHAT OBJ MODULES HAVE BEEN AFFECTED, OR PLAY
  661.  IT SAFE AND RECOMPILE EVERYTHING.
  662.  
  663.  CLMAKE AUTOMATES THE PROCESS OF KEEPING TRACK OF WHAT HAS BEEN CHANGED SO
  664.  ALL NECESSARY RECOMPILING IS DONE, BUT NO MORE.  CLMAKE READS CLIPPER'S CLP
  665.  FILES TO COMPARE THE DATE AND TIME OF EACH PRG FILE WITH THE OBJ THAT HOLDS
  666.  IT, THEN RECOMPILES ANY OBJ FILE THAT IS OLDER THAN ONE OF ITS PRG FILES.
  667.  SIMPLE, YET THE TIME SAVED CAN BE SIGNIFICANT.  CLMAKE COMES WITH A
  668.  COMPANION UTILITY MAKEMAKE, WHICH AUTOMATES THE TASK OF CREATING THE BATCH
  669.  FILE THAT RUNS CLMAKE. MAKEMAKE GENERATES PROPER SYNTAX FOR EITHER PLINK86
  670.  OR MICROSOFT LINK.  ALSO INCLUDED IS TOUCH TO INSTANTLY UPDATE A FILE'S
  671.  DATE/TIME. USE TOUCH TO FORCE A FILE TO BE RECOMPILED BY CLMAKE, OR USE IT
  672.  TO GIVE ALL FILES IN A PACKAGE IDENTICAL DATES/TIMES.  THERE ARE OTHER
  673.  "MAKE" UTILITIES, BUT CLMAKE IS OPTIMIZED FOR CLIPPER.  I'D CALL IT
  674.  MANDATORY FOR SERIOUS CLIPPER PROGRAMMERS.
  675.  
  676.  
  677.  INSTANT EDITOR
  678.  
  679.  THIS IS THE PRODUCT THAT FIRST ATTRACTED ME TO COMTEL.  TO WRITE AND EDIT
  680.  SOURCE CODE I HAVE BEEN USING SIDEKICK.  SOME PROGRAMS INCLUDE A BUILT-IN
  681.  TEXT EDITOR OF LIMITED UTILITY. THE DBASE MODIFY COMMAND, FOR EXAMPLE, IS
  682.  95 PERCENT USELESS.  CALLING UP AN EXTERNAL TEXT EDITOR LIKE WORDSTAR OR
  683.  BRIEF IS TOO SLOW, AND MOST WORD PROCESSORS JUST AREN'T SUITED TO PROGRAM
  684.  EDITING.  I LIKE TO BE ABLE TO RUN THE PROGRAM, STOP AT VARIOUS POINTS, AND
  685.  JUMP BACK AND FORTH BETWEEN THE APPLICATION SCREEN AND THE SOURCE CODE IN
  686.  MY EDITOR TO MAKE CHANGES. SIDEKICK IS PERFECT FOR THIS TASK, BUT ITS BEEN
  687.  A LONG TIME SINCE BORLAND UPGRADED IT.  AMONG MY MORE PRESSING DESIRES WAS
  688.  FOR SIMULTANEOUS MULTIPLE DOCUMENT VIEWING AND EDITING.  I WAS SIMULATING
  689.  THIS NEED BY USING LIST.COM FROM DOS WHILE SWITCHING IN AND OUT OF
  690.  MEMORY-RESIDENT SIDEKICK; CRUDE, BUT IT WORKED.
  691.  
  692.  BUT NO MORE.  NOW I USE COMTEL'S WONDERFUL INSTANT EDITOR.  "IE" IS AN
  693.  ALMOST EXACT CLONE OF THE NOTEPAD TEXT EDITOR PORTION OF SIDEKICK, BUT WITH
  694.  MANY VALUABLE ENHANCEMENTS.  INSTANT EDITOR IS MORE VERSATILE, BECAUSE IT
  695.  CAN BE USED AS A STAND-ALONE PROGRAM OR IN MEMORY RESIDENT MODE (WHERE IT
  696.  IS EASILY REMOVABLE).  SIDEKICK IS EITHER IN MEMORY OR NOWHERE, NOT ALWAYS
  697.  THE BEST OF OPTIONS.
  698.  
  699.  MY FAVORITE IE FEATURE IS THE VIEWING AND EDITING OF UP TO 8 FILES IN 8
  700.  WINDOWS SIMULTANEOUSLY!  TEXT CAN BE CUT AND PASTED BETWEEN WINDOWS USING
  701.  THE SAME BLOCK COMMANDS AS SIDEKICK AND WORDSTAR.  I'LL NEVER PROGRAM
  702.  WITHOUT THIS CAPABILITY AGAIN!
  703.  
  704.  FOR PROGRAMMERS IN DBASE, CLIPPER, C AND PASCAL, INSTANT EDITOR INCLUDES AN
  705.  INTELLIGENT SHORTHAND.  FOR DBASE TYPE THE FIRST PART OF VARIOUS PAIRED
  706.  COMMANDS (LIKE DO WHILE...) AND IE WILL AUTOMATICALLY TYPE THE SECOND PART
  707.  (ENDDO).  IT DOES THE SAME FOR IF...ENDIF AND DO CASE...CASE...ENDCASE.
  708.  UNFORTUNATELY, CLIPPER'S FOR...NEXT IS NOT RECOGNIZED.  FOR PASCAL IE WILL
  709.  ADD END TO BEGIN, ETC.  IE WILL DO THE SAME THING FOR PAIRED SYMBOLS () []
  710.  .  BECAUSE IE UNDERSTANDS THE STRUCTURE OF THESE LANGUAGES, IT WILL ALSO
  711.  AUTOMATICALLY INDENT THE SAME STRUCTURES HANDLED BY THE INTELLIGENT
  712.  SHORTHAND AS YOU TYPE IT.  IF YOU COPY A SECTION OF CODE TO ANOTHER
  713.  POSITION, IE WILL RE-INDENT IT TO MATCH THE NEW LOCATION.  OR IT CAN
  714.  RE-INDENT THE ENTIRE SOURCE CODE FILE JUST LIKE DLIST (BUT WITHOUT THE
  715.  RECENT DLIST 1.31 FORMATTING ENHANCEMENTS).  ONCE YOU HAVE MOVED TO AN
  716.  INDENTATION LEVEL, IE'S AUTO-INDENT FEATURE CAN KEEP YOU THERE
  717.  AUTOMATICALLY. WHEN MOVING AROUND YOUR TEXT FILE, GIVEN AN INDENTATION
  718.  LEVEL, IE CAN EVEN JUMP DIRECTLY TO THE OTHER END OF THAT SAME LEVEL.
  719.  GREAT STUFF!
  720.  
  721.  INSTANT EDITOR ALSO FUNCTIONS AS A NORMAL (BUT LIMITED) WORD PROCESSOR WITH
  722.  PARAGRAPH REFORMATTING, WORD WRAP, AND LEFT AND RIGHT MARGINS. F1 BRINGS UP
  723.  ON-LINE HELP.  IF YOU THINK YOU STILL NEED SIDEKICK, CONSIDER THAT IE ALSO
  724.  INCLUDES A POP-UP CALCULATOR FOR BINARY, DECIMAL, HEX AND PARENTHESES MATH,
  725.  A SUPERIOR POP-UP ASCII TABLE, AND A POP-UP CALENDAR.  AND IF YOU STILL
  726.  THINK YOU NEED SIDEKICK, THEY ARE COMPATIBLE: YOU CAN POP-UP SIDEKICK
  727.  INSIDE INSTANT EDITOR OR POP-UP INSTANT EDITOR INSIDE SIDEKICK!
  728.  
  729.  I DO HAVE ONE COMPLAINT, WHICH COMTEL IS ALREADY ADDRESSING.  UNLIKE
  730.  SIDEKICK AND WORDSTAR, INSTANT EDITOR LETS YOU BEGIN WRITING WITHOUT FIRST
  731.  SPECIFYING A FILE NAME.  JUST START TYPING ON A BLANK SCREEN. BUT THEN IE
  732.  OFFERS AN INCONSISTENT WAY TO SAVE WHAT YOU HAVE TYPED. YOU HAVE TO INVOKE
  733.  THE MENU SYSTEM, AND USE "SAVE TO ANOTHER NAME". HITTING F2 (OR THE
  734.  EQUIVALENT CTRL-K-S) WILL NOT GIVE AN ERROR MESSAGE, BUT IT WILL NOT SAVE
  735.  YOUR WORK EITHER.  WHY SHOULD YOU NEED TO SAVE TO ANOTHER NAME, SINCE THE
  736.  DOCUMENT DOESN'T HAVE ANY NAME AT ALL?  AND HOW WOULD YOU KNOW TO DO THIS
  737.  (TOOK ME A WHILE TO FIGURE THIS OUT)?  FINALLY, USING THIS METHOD LEADS TO
  738.  A SERIES OF ADDITIONAL INCONVENIENCES.  THIS QUIRK IS NOT A MAJOR PROBLEM,
  739.  AND YOU CAN AVOID IT BY ALWAYS NAMING A NEW FILE BEFORE USING IT.  COMTEL
  740.  SAYS THE PROGRAM WAS DESIGNED THIS WAY INTENTIONALLY, BUT THEY AGREE THAT
  741.  NAMING THE FILE FIRST IS PROBABLY A BETTER GENERAL METHOD.  I EXPECT A
  742.  REVISION SOON.
  743.  
  744.  INSTANT EDITOR EMULATES SIDEKICK (AND WORDSTAR) IN MOST AREAS, BUT SOME
  745.  FUNCTIONS ARE A BIT CLUNKY.  THE MOST VALUABLE SIDEKICK FEATURE THAT IE
  746.  DOES NOT YET INCLUDE IS CUT AND PASTE.  IE DOES NOT HAVE ANY WAY TO CAPTURE
  747.  SOMETHING FROM THE SCREEN AND PULL IT INTO A TEXT FILE.  NOR DOES IE
  748.  PERFORM SIDEKICK'S TRICK OF FEEDING A BLOCK OF TEXT OUT TO ANOTHER PROGRAM
  749.  AS IF IT WAS BEING TYPED FROM THE KEYBOARD.  AND IE DOES NOT INCLUDE THE
  750.  DIALER/MODEM FUNCTIONS OF SIDEKICK.  OTHERWISE, IE IS FAR SUPERIOR, AND IS
  751.  LIKELY TO REPLACE SIDEKICK AS A PROGRAMMER'S MEMORY RESIDENT EDITOR.  BUT A
  752.  PROGRAMMER MAY STILL SWITCH TO SIDEKICK IN SITUATIONS WHERE IE'S LARGER RAM
  753.  REQUIREMENTS ARE UNDESIRABLE; THAT'S WHEN THE FEW DIFFERENCES BETWEEN THEM
  754.  BECOME DISCONCERTING.
  755.  
  756.  IN SIDEKICK YOU CAN CTRL-Y ALL DAY LONG AND SIDEKICK WILL PERFORM AS
  757.  EXPECTED.  IN SIDEKICK CTRL-Y DELETES THE LINE YOU ARE ON, THEN MOVES UP
  758.  THE FOLLOWING LINES.  A SERIES OF CTRL-YS WILL DELETE THE CURRENT LINE AND
  759.  THOSE THAT FOLLOW, BUT WHEN YOU RUN OUT OF LINES AT OR BELOW THE CURSOR,
  760.  NOTHING MORE WILL BE DELETED.  INSTANT EDITOR, HOWEVER, WILL THEN BACK UP
  761.  TO THE LINE BEFORE THE CURSOR, DELETE THAT LINE, BACK UP AGAIN, ETC.  IN
  762.  OTHER WORDS, WHEN CTRL-Y IS TYPED WHERE THERE ARE NO MORE LINES FOLLOWING
  763.  THE CURSOR, IE WILL JUMP TO THE PRECEDING LINE, WHERE ANOTHER CTRL-Y WILL
  764.  DELETE THAT LINE, JUMP TO THE PRECEDING LINE, ETC.  THIS IS AN EASY WAY TO
  765.  WIPE OUT MORE THAN YOU DESIRED, SO BE CAREFUL.  THIS IS NOT A FLAW, JUST A
  766.  DIFFERENCE; IT COULD BE ARGUED THAT SIDEKICK'S CONVENTIONS ARE THE
  767.  LESS-DESIRABLE. FORTUNATELY, IE'S ALT-U CAN UNDELETE AS MANY LINES AS YOU
  768.  WISH.
  769.  
  770.  IN GENERAL, INSTANT EDITOR WORKS FLAWLESSLY.  I FOUND TWO MINOR BUGS WHICH
  771.  COMTEL IS FIXING IMMEDIATELY.  OCCASIONALLY WHEN USING CTRL-N TO PUSH DOWN
  772.  THE CURRENT LINE AND INSERT A NEW LINE, THE LAST CHARACTER OR TWO OF THE
  773.  CURRENT LINE WOULD BE LEFT BEHIND.  COMTEL SAYS ITS A QUIRK IN TURBO PASCAL
  774.  THAT CAN BE WORKED AROUND.  WHEN BLOCKING AN ENTIRE LINE FOR COPYING OR
  775.  MOVING BY PLACING THE FIRST MARK A THE HEAD OF THE LINE AND THE NEXT MARK
  776.  AT THE HEAD OF THE FOLLOWING LINE, IE WILL SOMETIMES ERRONEOUSLY INCLUDE
  777.  THE FIRST CHARACTER OF THE FOLLOWING LINE, EVEN THOUGH IT IS NOT SHOWN AS
  778.  BLOCKED.  THIS TOO IS BEING FIXED IMMEDIATELY.  ONE DAY I HAD IE LOCK UP ON
  779.  ME A FEW TIMES, BUT THAT COULD HAVE BEEN DUE TO A PARTICULAR COMBINATION OF
  780.  RESIDENT SOFTWARE, A HARDWARE GLITCH OR WHO KNOWS WHAT.  COMTEL DOES ADVISE
  781.  THAT INSTANT EDITOR MAY CLASH WITH CERTAIN PROGRAMS LIKE FRAMEWORK WHICH
  782.  TAKE OVER INTERRUPT 9 IN A SUPPOSEDLY STRANGE WAY.
  783.  
  784.  
  785.  
  786.  G11043     UNIT  LISTING.   86/12/31. 86/11/07. 86/11/07. 11.07 PM
  787.  
  788.  CLIPPER UPGRADE
  789.  COMTEL
  790.  DB TOOLS
  791.  DBASE III
  792.  FROM-HAYCA.MOURA.B
  793.  GROUP-PTI.MICROLINK
  794.  INSTANT EDITOR
  795.  LASER PRINTERS
  796.  PROGRAMMERS TOOLS
  797.  SAVE Y
  798.  SUBJ OCTOBER HAWK'S RAM PART 3
  799.  
  800.  
  801.                          HAWK'S RAM -- OCTOBER, 1986
  802.                                     PART 3
  803.  
  804.  
  805.  ANOTHER AREA COMTEL IS IMPROVING IS IE'S RESPONSE WHEN ITS TEXT BUFFER GETS
  806.  ALMOST FULL AND IT NEEDS TO ISSUE A WARNING.  A NICE FEATURE IS THAT WHEN
  807.  YOU RELEASE A WINDOW, A GARBAGE COLLECTION ROUTINE RECLAIMS THE BUFFER SPACE
  808.  FOR USE BY ANOTHER WINDOW/DOCUMENT. MANY PACKAGES CAN EXPAND ON DEMAND BUT
  809.  WON'T SHRINK THEMSELVES UNTIL YOU EXIT AND RELOAD.  THAT TIES UP VALUABLE
  810.  RAM FOR NO PURPOSE, A LIMITATION IE GETS AROUND VERY NICELY.
  811.  
  812.  INSTANT EDITOR CAN TAKE A SIGNIFICANT CHUNK OF RAM (220K AS SUPPLIED, WITH
  813.  128K USED AS THE DOCUMENT WORKSPACE; THIS IS CHANGEABLE BY THE USER).
  814.  THAT'S UNAVOIDABLE, CONSIDERING WHAT IT DOES, AND IE CAN EASILY BE REMOVED
  815.  FROM RAM VIA ITS POP-UP MENU SYSTEM.  WHEN DEVELOPING LARGE CLIPPER
  816.  APPLICATIONS I HAVE TO ALWAYS REMEMBER TO REMOVE MY LARGE BUFFER VERSION OF
  817.  IE FROM MEMORY BEFORE RUNNING THE NEW PROGRAM.  OTHERWISE THEY APPARENTLY
  818.  COLLIDE AND LOCK UP THE MACHINE, WHILE RANDOM GRAPHICS CHARACTERS SLOWLY
  819.  SPRINKLE THE SCREEN. I WOULD EXPECT (AND PREFER) AN ERROR MESSAGE RATHER
  820.  THAN A FREEZE. COMTEL BELIEVES DOS SHOULD PROTECT IE FROM SUCH PROBLEMS.
  821.  PROBABLY THE CULPRIT IS CLIPPER (WINTER 85), WHICH SHOULD ISSUE AN
  822.  INSUFFICIENT MEMORY MESSAGE RATHER THAN JUST CRASH AND BURN.  IF I NEED TO
  823.  HAVE IE AVAILABLE FROM WITHIN A LARGE CLIPPER APPLICATION, I LOAD A SPECIAL
  824.  VERSION OF IE CREATED WITH A SMALLER 64K BUFFER.  THIS IS NOT REALLY A
  825.  LIMITATION, SINCE EVEN A 64K BUFFER IS VERY LARGE BY SIDEKICK STANDARDS.
  826.  SIDEKICK DEFAULTS TO ONLY A 4K BUFFER, AND CAN BE SET TO A MAXIMUM SIZE OF
  827.  ONLY 50K.  INSTANT EDITOR'S BUFFER CAN RANGE FROM 32K TO JUST ABOUT AS LARGE
  828.  AS YOU NEED AND YOUR SYSTEM CAN TOLERATE, BUT IT CAN'T USE EXPANDED MEMORY.
  829.  
  830.  THE FILES CREATED BY INSTANT EDITOR SEEM TO BE PURE ASCII.  SINCE
  831.  INTERPRETERS OR COMPILERS CANNOT BE EXPECTED TO FILTER EXTRANEOUS GARBAGE
  832.  OUT OF SOURCE CODE, USING A "CLEAN" EDITOR IS IMPORTANT. WORDSTAR, EVEN IN
  833.  NON-DOCUMENT MODE, CAN STILL LEAVE CONTROL CODES IN THE FILE (PUSH THE TAB
  834.  KEY A FEW TIMES IN WORDSTAR, THEN CHECK THE SAME DOCUMENT WITH SIDEKICK OR
  835.  INSTANT EDITOR).  IF YOU WRITE PROGRAMS IN DBASE, CLIPPER, PASCAL OR C,
  836.  INSTANT EDITOR CAN REALLY BE A TIME-SAVER.  THE PROBLEMS I'VE EXPERIENCED
  837.  ARE TRIVIAL AND WILL PROBABLY BE ELIMINATED BY THE TIME YOU READ THIS.
  838.  
  839.  
  840.  COMTEL -- A COMPANY TO WATCH
  841.  
  842.  NEEDLESS TO SAY, I AM SATISFIED AND IMPRESSED.  THE VARIOUS COMTEL PROGRAMS
  843.  AND UTILITIES HAVE IMMEDIATELY BECOME AMONG MY MOST USED DEVELOPMENT TOOLS.
  844.  IT'S A PLEASURE TO WORK WITH A SMALL COMPANY WHERE USER SATISFACTION IS THE
  845.  NUMBER ONE CONCERN.  THE GENIUS BEHIND COMTEL, BILL HO, IS RESPONSIVE TO
  846.  SUGGESTIONS AND IS WILLING TO UPGRADE HIS PROGRAMS OFTEN.  BUG FIXES ARE
  847.  FREE.  UPDATES TO ADD ENHANCEMENTS LIKE THE FORMATTING IMPROVEMENTS I'VE
  848.  MENTIONED ARE GENERALLY JUST $5.  WHEN MAJOR UPGRADES ARE RELEASED YOU CAN
  849.  USUALLY TRADE UP, INCLUDING NEW DOCUMENTATION, FOR THE DIFFERENCE IN PRICE.
  850.  THAT'S MORE THAN FAIR.  MANUALS ARE LASER PRINTED, ATTRACTIVE AND WELL
  851.  WRITTEN.  FOR THE MONEY, I DON'T KNOW OF ANY MORE VALUABLE TOOLS.  DBTOOLS,
  852.  DBSCOPE AND INSTANT EDITOR ALL SELL FOR ONLY $69, AND CLMAKE IS A TINY $15.
  853.  A STEAL!  COMTEL, SUITE 110, 2156 EAST COLORADO BOULEVARD, PASADENA,
  854.  CALIFORNIA 91107, (818) 304-0312.
  855.  
  856.  
  857.  LASER PRINTERS
  858.  
  859.  AS I WRITE THIS I AM PREPARING TO PUT MY NEW LASER-PRINTER BASED DESKTOP
  860.  PUBLISHING SYSTEM ON-LINE.  BECAUSE I HAVE EXPERIENCE IN THIS FIELD USING
  861.  PRE-COMPUTER TECHNOLOGIES, MY SELECTION PROCESS INVOLVED ASKING A LOT OF
  862.  HARD QUESTIONS ALONG THE WAY.  THE ANSWERS I RECEIVED LEAD TO ONE STRONG
  863.  RECOMMENDATION: BE CAREFUL!  HARDLY ANYONE KNOWS WHAT THEY ARE TALKING
  864.  ABOUT, AND UNSUBSTANTIATED CLAIMS SEEM TO THE ORDER OF THE DAY.
  865.  
  866.  IF YOU ANTICIPATE DOING ANYTHING COMPLEX, PICK YOUR HARDWARE WITH GREAT
  867.  CARE.  NOT ALL CANON ENGINE-BASED LASER PRINTERS ARE CREATED EQUAL.  SOME
  868.  CAN ACCEPT SOFTWARE GENERATED DOWN-LOADABLE FONTS; OTHERS CANNOT.  SOME CAN
  869.  HANDLE FONTS UP TO 30 POINTS HIGH; OTHERS CAN'T HANDLE HALF THAT SIZE.
  870.  UNLESS YOU INSTALL A TALL TREE J-LASER BOARD AND BYPASS THE PRINTER'S
  871.  ELECTRONICS, THE DIFFERENCES ARE MORE SIGNIFICANT THAN THE COMMON CANON
  872.  ENGINE.  THE SO-CALLED SECOND GENERATION PRINTERS THAT USE ENGINES FROM
  873.  RICOH, TOSHIBA, KYOCERA, HITACHI, KONICA AND NEC OFFER ENHANCEMENTS, BUT
  874.  THEY ARE ALL NEW AND SOMEWHAT UNPROVEN MACHINES.  THE KYOCERA F1010 IS
  875.  EXCITING, BUT THE COMPANY IS WAY OFF MARK IN HOW THEY ARE APPROACHING THE
  876.  MARKET; I'LL LET YOU KNOW MORE ABOUT IT NEXT MONTH.
  877.  
  878.  THE BIGGEST PROBLEM WITH ALL LASER PRINTERS IS SOFTWARE SUPPORT.  TO AT
  879.  LEAST GIVE YOU SOME OUTPUT, ALMOST EVERY LASER PRINTER EMULATES THE EPSON
  880.  FX-80.  BUT UNLESS YOU WANT A BIG, EXPENSIVE, BUT QUIETER EPSON FX-80, SO
  881.  WHAT!  IF THE EXCITING NEW CAPABILITIES OF TYPESETTING, GRAPHICS AND DESKTOP
  882.  PUBLISHING ARE ON YOUR HORIZON, FIND OUT EXACTLY WHICH PRINTERS THE SOFTWARE
  883.  WORKS WITH BEFORE BUYING HARDWARE.  AND BE VERY CAREFUL OF OPTIMIZED
  884.  DEMONSTRATIONS.  EVERY LASER PRINTER PUTS OUT VERY NICE PRINTING.  THE
  885.  QUESTION IS, WHAT DOES IT TAKE TO GET THE MACHINE TO PRINT WHAT YOU NEED?
  886.  
  887.  
  888.  CLIPPER UPGRADE
  889.  
  890.  BUSINESS PEOPLE -- READ THIS.  EVEN IF YOU ARE NOT A CLIPPER USER/
  891.  PROGRAMMER, YOU SHOULD KNOW THAT THE RELEASE OF THE AUTUMN 86 VERSION OF THE
  892.  CLIPPER COMPILER IS EXCITING NEWS FOR BUSINESS COMPUTER USERS.  WHY? BECAUSE
  893.  IT CAN SAVE YOU TIME AND MONEY.  NOW YOUR BUSINESS CAN USE DBASE
  894.  OFF-THE-SHELF, CUSTOMIZED OR SPECIALLY WRITTEN SOFTWARE ON A LOCAL AREA
  895.  NETWORK AT INCREDIBLE SAVINGS.  TO RUN DBASE SOFTWARE ON A LAN REQUIRES THE
  896.  PURCHASE OF DBASE III PLUS ($700 RETAIL), PLUS A DBASE LANPACK FOR EACH
  897.  WORKSTATION ($250 EACH IN SETS OF 4 ONLY).  THAT'S $1,700 MINIMUM, NOT
  898.  INCLUDING THE APPLICATIONS SOFTWARE ITSELF, NOR NETWORK HARDWARE, OPERATING
  899.  SYSTEM AND WORKSTATIONS.  WITH CLIPPER YOU DON'T NEED DBASE NOR ITS
  900.  LANPACKS.  NOR DO YOU NEED TO EQUIP YOUR WORKSTATIONS WITH THE EXTRA-EXPENSE
  901.  DISK DRIVES WHICH DBASE REQUIRES JUST TO BOOT UP.  AN APPLICATION COMPILED
  902.  UNDER CLIPPER PERMITS AN UNLIMITED NUMBER OF USERS ON THE NETWORK, WITH NO
  903.  ADDED COSTS BEYOND THE ORIGINAL APPLICATION.  THAT'S RIGHT: BUY IT ONCE AND
  904.  USE IT AS YOU WISH.
  905.  
  906.  NOTICE THAT I AM TALKING ABOUT THE APPLICATION ITSELF, NOT CLIPPER.  YOU
  907.  DON'T NEED CLIPPER (WHICH COSTS $700, MORE IF YOU COLLECT THE VARIOUS
  908.  ADD-ONS THAT WORK WITH IT).  YOU DON'T NEED TO UNDERSTAND CLIPPER.  AND YOU
  909.  PROBABLY DON'T WANT TO HAVE TO DEAL WITH THE PRIMA DONNAS AS NANTUCKET.  ALL
  910.  YOU NEED IS AN AWARENESS OF THE VALUE OF SELECTING BUSINESS SOFTWARE THAT
  911.  HAS BEEN COMPILED UNDER CLIPPER AUTUMN 86.  YOU CAN ALSO HAVE YOUR PRESENT
  912.  DBASE APPLI8CATIONS RUN THROUGH CLIPPER BY A KNOWLEDGABLE CONSULTANT.
  913.  CONSIDER BUSINESS SOFTWARE FOR ACCOUNTING8, ORDER ENTRY, SALES MANAGEMENT,
  914.  INVENTORY CONTROL, MAILING LISTS, ETC.  SAY YOU SPEND $1,000 FOR AN
  915.  APPLICATION.  8TO RUN IT UNDER DBASE III PLUS, ADD $1,700 OF NON-PRODUCTIVE
  916.  INVESTMENT.  WHY DO THAT WHEN YOU CAN BUY YOUR SOFTWARE FROM SOMEONE WHO
  917.  WILL SUPPLY IT COMPILED UNDER CLIPPER AUTUMN 86, SO YOU CAN INVEST THAT
  918.  $1,700 BENEFICIALLY?
  919.  
  920.  ASIDE FROM THE SUBSTANTIAL DOLLARS YOU CAN SAVE BY SPECIFYING CLIPPER-
  921.  COMPILED APPLICATIONS, YOU WILL ALSO SAVE TIME AND DISK SPACE.  CLIPPER
  922.  INCLUDES A RICH LIBRARY OF POWERFUL ROUTINES WHICH A SKILLED PROGRAMMER C8AN
  923.  USE TO MAKE PROGRAMS SMALLER YET FASTER AND MORE POWERFUL.8  YOU AND YOUR
  924.  USERS WON'T HAVE TO WAIT FOR THE PROGRAM TO CATCH UP TO YOU, YOU'LL GET MORE
  925.  DONE, AND YOU'LL WASTE LESS DISK SPACE TOO.  BE AWARE THAT TO GET THE FULL
  926.  BENEFIT OF CLIPPER'S ADVANCED FEATURES THE PROGRAM MUST BE OPTIMIZED TO USE
  927.  THEM; JUST RUNNING DBASE SOURCE CODE THROUGH CLIPPER DOES NOT TAP INTO ALL
  928.  THE GOODIES.  LET ME REPEAT A WARNING FROM A PREVIOUS COLUMN: CLIPPER IS NOT
  929.  FOR THE FAINT-OF-HEART.  UNLESS YOU ARE A PROFESSIONAL, OR NEED A HOBBY,
  930.  DON'T MESS WITH CLIPPER.  BUT DO DEMAND THAT YOUR BUSINESS MANAGEMENT
  931.  SOFTWARE USE CLIPPER, AUTUMN 86, INCLUDING THE ADVANCED CAPABILITIES.
  932.  ASHTON-TATE DOESN'T NEED YOUR MONEY; YOU DO.
  933.  
  934.  
  935.  TIME ELAPSES BETWEEN WHEN I WRITE THIS AND YOU READ IT, SO PLEASE CALL IF
  936.  YOU WANT AN EXPERIENCE UPDATE BEFORE SPENDING GOOD MONEY.
  937.  
  938.  
  939.              "HAWK'S RAM" COPYRIGHT (C) 1986 BY JOHN L. HAWKINS.
  940.  
  941.  
  942.  HAWKINS/BANFIELD MANAGEMENT SYSTEMS, P.O. BOX 6476, SAN RAFAEL, CA 94903.
  943.  415/492-8757 OR 415/525-6624.  NON-COMMERCIAL PUBLICATION AUTHORIZED WITH
  944.  CREDIT; COMMERCIAL RIGHTS RESERVED.
  945.  
  946.  
  947.  
  948.